{\rtf1\ansi\ansicpg1252\cocoartf102{\fonttbl\f0\fswiss Helvetica;\f2\fnil Ohlfs;\f1\froman Times;}
{\colortbl;\red0\green0\blue0;}
\paperw12860\paperh11240\hyphauto1\hyphfactor0\f0\fs20\pard\ql Source: http://wiki.gnustep.org/index.php/Nfont_packages\fs24 \par
\fs36 \par
\pard\ql\f1\fs88\i\pard\tx2020\tx2400\ql Font bundles\f0\fs24\i0\cf1 \par
\par
\f1\fs28 The Art backend manages fonts using bundle with \b .nfont\b0  extension.\par
\pard\ql\pard\tx0\tx1940\ql These \i font bundles\i0  are hand-crafted directories with a \b FontInfo.plist\b0  file and the font files, where the backend can find additional information to the fonts. System-wide available font bundles are installed to /Library/Fonts.\par
\pard\ql\pard\tx2020\tx2400\ql \par
Creating a font bundle is mainly a trivial task, so there are tools to help you creating them. One of them is alexm\rquote s \f0\fs24 mknfonts\f1\fs28  package.\f0\fs24 \par
\pard\ql\pard\ql \par
\fs52\b Example\fs24\b0 \par
\par
\f1\fs28 A typical nfont folder - in this case Arial.nfont packaged by Jeff Teunissen (Deek) - looks like this:\f0\fs24 \par
\par
\f2 Arial.nfont/\par
Arial.nfont/ariali.ttf\par
Arial.nfont/arial.ttf\par
Arial.nfont/arialbi.ttf\par
Arial.nfont/arialbd.ttf\par
Arial.nfont/FontInfo.plist\par
Arial.nfont/arialblk.ttf\f0 \par
\par
\par
\f1\fs28 This is the FontInfo.plist file in that directory:\f0\fs24 \par
\par
\f2 \{\par
  Description = "Monotype Arial, WGL4 Character Set";\par
  Faces = (\par
    \{\par
      Files = (arial.ttf);\par
      LocalizedNames = \{\par
        Basque = Arrunta;\par
        Catalan = Normal;\par
        Danish = normal;\par
        Dutch = Standaard;\par
        English = Regular;\par
        Finnish = Normaali;\par
        French = Normal;\par
        Germany = Standard;\par
        Hungarian = "Norm\\u00e1l";\par
        Italian = Normale;\par
        Norwegian = Normal;\par
        Polish = Normalne;\par
        Portuguese = Normal;\par
        Slovak = "Norm\\u00e1lne";\par
        Slovene = Navadno;\par
        Spanish = Normal;\par
        Swedish = Normal;\par
        Turkish = Normal;\par
      \};\par
      Name = Regular;\par
      PostScriptName = ArialMT;\par
      RenderHints_hack = 0x0002;\par
      Traits = 0;\par
      Weight = 5;\par
    \},\par
    \{\par
      Files = (ariali.ttf);\par
      LocalizedNames = \{\par
        English = Italic;\par
      \};\par
      Name = Italic;\par
      PostScriptName = "Arial-ItalicMT";\par
      RenderHints_hack = 0x0002;\par
      Traits = 1;\par
      Weight = 5;\par
    \},\par
    \{\par
      Files = (arialbd.ttf);\par
      LocalizedNames = \{\par
        English = Bold;\par
      \};\par
      Name = Bold;\par
      PostScriptName = "Arial-BoldMT";\par
      RenderHints_hack = 0x0002;\par
      Traits = 2;\par
      Weight = 9;\par
    \},\par
    \{\par
      Files = (arialbi.ttf);\par
      LocalizedNames = \{\par
        English = "Bold Italic";\par
      \};\par
      Name = "Bold Italic";\par
      PostScriptName = "Arial-BoldItalicMT";\par
      RenderHints_hack = 0x0002;\par
      Traits = 3;\par
      Weight = 9;\par
    \},\par
    \{\par
      Files = (arialblk.ttf);\par
      LocalizedNames = \{\par
        English = Black;\par
      \};\par
      Name = Black;\par
      PostScriptName = "Arial-Black";\par
      RenderHints_hack = 0x0002;\par
      Traits = 2;\par
      Weight = 12;\par
    \}\par
    );\par
  FontCopyright = "Typeface \\u00a9 The Monotype Corporation plc.\\nData \\u00a9 The Monotype Corporation plc/Type Solutions Inc. 1990-1992.\\nAll Rights Reserved";\par
  Foundry = "Monotype Typography";\par
  Packager = "Jeff Teunissen <deek@d2dc.net>";\par
  Version = 2.82;\par
\}\par
\f0 \par
\fs52\b Rendering Hints\fs24\b0 \par
\par
\f1\fs28 There\rquote s a hack for encoding rendering hints into Nfonts packages. You provide them using the\f0\fs24  \f1\fs28\b RenderHints_hack\b0  value. It\rquote s a 24-bit value (usually given in hexadecimal form), where the highest-order byte contains information on if we want to use antialiasing by default and the two following bytes contain hinting information for antialiased displays and non-antialiased displays.\f0\fs24 \par
\par
\f2\fs20 <-- high-order bits                       low-order bits -->\par
[  0 0 0 0 0 0 0 D  |  0 0 0 0 0 0 A A  | 0 0 0 0 0 0 N N  ]\par
                 |                 \\ /                \\ /\par
      antialiasing switch           |                  |\par
                            hinting type           hinting type\par
                     on antialiased displays    on non-antialiased displays\f0\fs24 \par
\par
\par
\f1\fs28 The rendering hint types are as follows:\par
\par
\pard\ql\pard\tx13000\ql     \rquote \f2\fs24 0\f1\fs28 \rquote  - unhinted, use only the font geometry\par
\pard\ql\pard\ql     \rquote \f2\fs24 1\f1\fs28 \rquote  - use FreeType\rquote s auto-hinter\par
    \rquote \f2\fs24 2\f1\fs28 \rquote  - use instructions in the font, if present\par
    \rquote \f2\fs24 3\f1\fs28 \rquote  - force automatic hinting \f0\fs24 \par
\par
\par
\fs48\b Rendering Hint example\fs24\b0 \par
\par
\f1\fs28 Let\rquote s say we have a \i RenderHints_hack\i0  value of \f0\fs24 0x010203\f1\fs28 . \par
This would then mean "use antialiasing, on antialiased displays use instructions in the font and on unantialiased displays force automatic hinting".\f0\fs24 \par
}